<script>
    // JSAPI / 小程序下单

            /*
                一、使用场景

                            JSAPI支付场景 (微信内置浏览器打开的网页) 或 小程序支付场景，

                            商户需要调用该接口在微信支付下单，生成用于拉起支付的 "预支付交易会话Id  (prepay_id)"
            */

            /*
                二、接口说明

                            1、支持商户：
                                
                                    【普通商户】

                            2、请求方式：

                                    【POST】/v3/pay/transactions/jsapi

                            3、请求域名：

                                    ①、【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点

                                    ②、【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ，
                                    
                                                指引点击查看（https://pay.weixin.qq.com/doc/v3/merchant/4012075113）
                        
            */

           /*
                三、请求参数

                            1、Header参数 (Http头参数表)：

                                            ①、Authorization 　 必填　      string

                                                        请参考 "签名认证(https://pay.weixin.qq.com/doc/v3/merchant/4012365342#%E8%AF%B7%E6%B1%82%E6%8E%A5%E5%8F%A3%E5%90%8E%E7%AB%AF%E7%AD%BE%E5%90%8D)" 

                                                        以生成 "认证信息"


                                            ②、Accept 　        必填　      string

                                                        请设置为 application/json


                                            ③、Content-Type 　  必填　      string

                                                        请设置为application/json

                                        
                            2、Body参数 (Http请求体内的参数)：

                                            <1>、appid 　         必填        string(32)
                                                        
                                                        "公众账号ID"是商户在微信开放平台（移动应用）或公众平台（公众号/小程序）上申请的一个唯一标识。

                                                        需要确保该 appid 与 mchid 有绑定关系，具体请参考 "普通商户牧师开发必要参数说明 (https://pay.weixin.qq.com/doc/v3/merchant/4013070756)"


                                            <2>、mchid 　         必填        string(32)

                                                        "商户号"
                                                        
                                                        是商户在微信支付平台上的唯一标识。

                                                        商户号获取方式请参考 "普通商户模式开发必要参数说明 （https://pay.weixin.qq.com/doc/v3/merchant/4013070756）"。


                                            <3>、description 　   必填        string(127)

                                                        "商品描述"

                                                        商品信息描述，用户微信账单的商品字段中可见 (可参考：JSAPI支付示例说明-账单示意图 https://pay.weixin.qq.com/doc/v3/merchant/4012062524#2%E3%80%81JSAPI%E6%94%AF%E4%BB%98%E6%A8%A1%E5%BC%8F%E4%BB%8B%E7%BB%8D)

                                                        商户需传递能真实代表商品信息的描述，不能超过127个字符。

                                            <4>、out_trade_no    必填         string(32)

                                                        "商户系统内部订单号" ，要求6-32个字符内,只能是数字、大小写字母_-|* 且在同一个商户号下唯一。

                                            <5>、time_expire 　   选填        string(64)

                                                        "支付结束时间"

                                                        ★、定义：

                                                                支付结束时间是指用户能够完成该笔订单支付的最后时限，并非订单关闭的时间。超过此时间后，用户将无法对该笔订单进行支付。

                                                                如需关闭订单，请调用关闭订单API接口（https://pay.weixin.qq.com/doc/v3/merchant/4012791860）。

                                                        ★、格式要求：

                                                                支付结束时间需遵循rfc3339标准格式：yyyy-MM-DDTHH:mm:ss+TIMEZONE。

                                                                yyyy-MM-DD 表示年月日；T 字符用于分隔日期和时间部分；HH:mm:ss 表示具体的时分秒；TIMEZONE 表示时区（例如，+08:00 对应东八区时间，即北京时间）。

                                                                示例：  2015-05-20T13:29:35+08:00 表示北京时间2015年5月20日13点29分35秒。

                                                        ★、注意事项：

                                                                △、time_expire 参数仅在用户首次下单时可设置，且不允许后续修改，尝试修改将导致错误。

                                                                △、若用户实际进行支付的时间超过了订单设置的支付结束时间，商户需使用新的商户订单号下单，生成新的订单供用户进行支付。

                                                                        若未超过支付结束时间，则可使用原参数重新请求下单接口，以获取当前订单最新的prepay_id 进行支付。


                                                                △、支付结束时间不能早于下单时间后1分钟，若设置的支付结束时间早于该时间，系统将自动调整为下单时间后1分钟作为支付结束时间。


                                            <6>、attach 　        选填        string(128)

                                                        "商户数据包"

                                                        商户在创建订单时刻传入自定义数据包，该数据对用户不可见，用于存储订单相关的商户自定义信息，器总长度在 128字符以内。

                                                        支付成功后 "查询订单API" 和 "支付成功回调通知" 均会将此字段返回非商户，并且该字段还会提现在交易账单。


                                            <7>、notify_url 　    必填        string(255)

                                                        "商户回调地址"

                                                        商户接收 "支付成功回调通知" 的地址，需要按照 "notify_url填写注意事项 (https://pay.weixin.qq.com/doc/v3/merchant/4012075420)"规范填写。


                                            <8>、goods_tag 　     选填        string(32)

                                                        "订单优惠标记"

                                                        代金券 在创建时可以配置 "多个订单优惠券标记",标记的内容由创券商户自定义设置. 详细参考：创建代金券批次API（https://pay.weixin.qq.com/doc/v3/merchant/4012534633）。

                                                        如果代金券有配置订单优惠标记，则必须在该参数传任意一个配置的订单优惠标记才能使用券。

                                                        如果代金券没有配置订单优惠标记，则可以不传该参数。

                                                        ★、示例：

                                                                如有两个活动，活动A设置了两个优惠标记：WXG1、WXG2；活动B设置了两个优惠标记：WXG1、WXG3；

                                                                下单时优惠标记传WXG2，则订单参与活动A的优惠；下单时优惠标记传WXG3，则订单参与活动B的优惠；下单时优惠标记传共同的WXG1，则订单参与活动A、B两个活动的优惠；

                                                        
                                            <9>、support_fapiao 　选填            boolean

                                                        "电子发票入口开放标识"

                                                        传入 true 时，"支付成功消息" 和 "支付详情页" 将出现 "开票入口"。 需要在 "微信支付商户平台" 或 "微信公众平台" 开通 "电子发票" 功能，传此字段才可生效。

                                                        详细参考：  电子发票介绍 (https://pay.weixin.qq.com/doc/v3/merchant/4012064743)


                                            <10>、amount          必填            object

                                                        "订单金额"
                                                            ★、属性

                                                                    1、total 　     必填        integer
                                                                            "总金额"
                                                                            订单总金额，单位为分，整型。
                                                                            示例：1元应填写 100

                                                                    2、currency     选填     string(16)

                                                                            "货币类型"
                                                                                符合ISO 4217标准的三位字母代码，
                                                                                固定传：CNY，代表人民币。


                                            <11>、payer 　      必填                    object、

                                                        "支付这信息"
                                                            ★、属性
                                                                    openid 　       必填        string(128) 
                                                                        "用户标识" 用户在商户appid下的唯一标识。下单前需获取到用户的OpenID

                                            <12>、detail 　     选填                    object

                                                        "优惠功能"

                                                            ★、属性

                                                                    ①、cost_price 　选填        integer

                                                                        "订单原价"
                                                                        
                                                                             商户侧一张小票订单可能被分多次支付，订单原价用于记录整张小票的交易金额

                                                                             当订单原价与支付金额不相等，则不享受优惠。

                                                                             该字段主要用于防止同一张小票分多次支付，以享受多次优惠的情况，正常支付订单不必上传此参数。

                                                                    ②、invoice_id 　选填            string(32)

                                                                            "商品小票Id"

                                                                            商家小票Id

                                                                    ③、goods_detail    选项        array[object]

                                                                            "单品列表"

                                                                            单品列表信息

                                                                            ★、条目个数限制：  1 ~ 6000

                                                                                  △、元素属性

                                                                                            1、merchant_goods_id 　    必填    string(32)

                                                                                                    "商户侧商品编码"

                                                                                                    由半角的大小写字母、数字、中划线、下划线中的一种或几种组成。

                                                                                            2、wechatpay_goods_id 　    选填    string(32)

                                                                                                    "微信支付商品编码"

                                                                                                    微信支付定义的统一商品编号 (没有可不传)

                                                                                            3、goods_name              选填    string(32)

                                                                                                    "商品名称"

                                                                                                    商品的实际名称

                                                                                            4、quantity 　              必填     integer

                                                                                                    "商品数量"

                                                                                                    用户购买的数量

                                                                                            5、unit_price 　            必填        integer

                                                                                                    "商品单价"

                                                                                                    整型，单位为：分。

                                                                                                    如果商户有优惠，需传输商户优惠后的单价
                                                                                                    
                                                                                                    （例如： 用户对一笔100元的订单使用了商场发的纸质优惠券100-50，则商品的单价为原单价-50）


                                            <13>、scene_info 　     选填                    object

                                                        "场景信息"

                                                        ★、属性

                                                                ①、payer_client_ip 　       必填        string(45)

                                                                        "用户中断ip"、

                                                                             用户的客户端Ip，支持 IPv4 和 IPv6 两种格式的 IP 地址。

                                                                ②、device_id               选填        string(128)

                                                                        "商户端设备号"

                                                                            商户端设备号（门店号或收银设备ID）。

                                                                ③、store_info 　            选填        object

                                                                        "商户门店信息"

                                                                            1、id 　        必填        string(32)
                                                                                    "门店编号"       商户侧门店编号，总长度不超过32字符，由商户自定义。

                                                                            2、name        选填         string(256)
                                                                                    "门店名称"        商户侧门店名称，由商户自定义。

                                                                            3、area_code 　选填         string(32)
                                                                                    "地区编码"       地区编码，详细请见省市区编号对照表。

                                                                            4、address 　  选填         string(512)
                                                                                    "详细地址"        详细的商户门店地址，由商户自定义。


                                        <14>、settle_info            选填                    object

                                                    "结算信息"

                                                    ★、属性

                                                            profit_sharing 　选填       boolean

                                                                    "分账标识"    
                                                                    
                                                                    订单的分账标识在下单时设置，传入true表示在订单支付成功后可进行分账操作。以下是详细说明：

                                                                        1、需要分账（传入true）：

                                                                                订单收款成功后，资金将被冻结并转入基本账户的不可用余额。商户可通过请求分账API，将收款资金分配给其他商户或用户。
                                                                                
                                                                                完成分账操作后，可通过接口解冻剩余资金，或在支付成功30天后自动解冻。


                                                                        2、不需要分账（传入false或不传，默认为false）：

                                                                                订单收款成功后，资金不会被冻结，而是直接转入基本账户的可用余额。


                        3、请求示例：

                                                                                        curl -X POST \
                                                                                        https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi \
                                                                                        -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
                                                                                        -H "Accept: application/json" \
                                                                                        -H "Content-Type: application/json" \
                                                                                        -d '{
                                                                                            "appid" : "wxd678efh567hg6787",
                                                                                            "mchid" : "1230000109",
                                                                                            "description" : "Image形象店-深圳腾大-QQ公仔",
                                                                                            "out_trade_no" : "1217752501201407033233368018",
                                                                                            "time_expire" : "2018-06-08T10:34:56+08:00",
                                                                                            "attach" : "自定义数据说明",
                                                                                            "notify_url" : " https://www.weixin.qq.com/wxpay/pay.php",
                                                                                            "goods_tag" : "WXG",
                                                                                            "support_fapiao" : false,
                                                                                            "amount" : {
                                                                                            "total" : 100,
                                                                                            "currency" : "CNY"
                                                                                            },
                                                                                            "payer" : {
                                                                                            "openid" : "ovqdowRIfstpQK_kYShFS2MSS9XS"
                                                                                            },
                                                                                            "detail" : {
                                                                                            "cost_price" : 608800,
                                                                                            "invoice_id" : "微信123",
                                                                                            "goods_detail" : [
                                                                                                {
                                                                                                "merchant_goods_id" : "1246464644",
                                                                                                "wechatpay_goods_id" : "1001",
                                                                                                "goods_name" : "iPhoneX 256G",
                                                                                                "quantity" : 1,
                                                                                                "unit_price" : 528800
                                                                                                }
                                                                                            ]
                                                                                            },
                                                                                            "scene_info" : {
                                                                                            "payer_client_ip" : "14.23.150.211",
                                                                                            "device_id" : "013467007045764",
                                                                                            "store_info" : {
                                                                                                "id" : "0001",
                                                                                                "name" : "腾讯大厦分店",
                                                                                                "area_code" : "440305",
                                                                                                "address" : "广东省深圳市南山区科技中一道10000号"
                                                                                            }
                                                                                            },
                                                                                            "settle_info" : {
                                                                                            "profit_sharing" : false
                                                                                            }
                                                                                        }'
           */

           /*
                四、返回参数

                           1、HttpCode： 
                           
                                    "200 OK"

                           2、data:

                                    <1>、prepay_id 　必填 string(64)

                                                "预支付交易会话标识"  

                                                预支付交易会话标识，  JSAPI 或 小程序拉起支付时需要使用的参数，有效期为2小时，

                                                失效后需要重新请求该接口以获取新的 prepay_id


                           3、返回数据示例：

                                    200 Ok

                                    {
                                        "prepay_id" : "wx201410272009395522657a690389285100"
                                    }
           */


          /*
                五、错误码
                                
                            (页面最底部)
                            https://pay.weixin.qq.com/doc/v3/merchant/4012791856        
          */
</script>